<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>数据类型之间的转换</title>
  <script>
    /**
     * 1. 整数与字符串之间的互相转换
     * NaN: not a number: 不是一个数字。
     */
    function fun1(){
      let a = '123abc'
      // 转换方式一：使用*1
      // a = a*1 + 1
      // console.log(typeof a)
      // 转换方式二：使用-0
      // a = a-0 + 1
      // 转换方式三：使用Number()函数转换
      // a = Number(a) + 1
      // 转换方式四 ：使用parseInt()进行转换,遇到第一个非数值类型的字符就停止转换！
      a = parseInt(a) + 1
      console.log("a = ",a)
    }
    // fun1()

    /**
     * 2. 字符串与小数之间的转换
     */
    function fun2(){
      let a = '1.23abc'
      // 转换方式一：使用*1
      // a = a*1 + 1
      // console.log(typeof a)
      // 转换方式二：使用-0
      // a = a-0 + 1
      // 转换方式三：使用Number()函数转换
      // a = Number(a) + 1
      // 转换方式四 ：使用parseFloat()进行转换,遇到第一个非数值类型的字符就停止转换！
      a = parseFloat(a) + 1
      console.log("a = ",a)
    }
    // fun2()
    /**
     * 3. 布尔类型与其它类型间的转换 (重要)
     */
    function fun3(){
      // 3.1 下面的五种类型自动转换为false
      // 情况一：
      let a = ''
      a = !!a
      console.log("a = ",a)         // a = false
      // 情况二：
      a = 0
      a = !!a
      console.log("a = ",a)         // a = false
      // 情况三：
      a = undefined
      a = Boolean(a)
      console.log("a = ",a)         // a = false
      // 情况四：
      a = null
      a = !!a
      console.log("a = ",a)         // a = false
      // 情况五：
      a = NaN
      a = !!a
      console.log("a = ",a)         // a = false
    }
    fun3()
  </script>
</head>
<body>

</body>
</html>
